// 在实际应用中，这些函数应该使用实际的UI组件库实现
// 这里我们使用简单的模拟实现

type LoadingInstance = object;

// 对话框和消息提示工具

// 加载状态管理
let loadingInstance: LoadingInstance | null = null;
let loadingCount = 0;

import { showDialog } from '../components/Dialog';

/**
 * 显示加载提示
 * @param message 提示消息
 */
export const showLoading = (message: string = '加载中...') => {
  loadingCount++;
  
  if (typeof window !== 'undefined') {
    // 在实际项目中，这里可以集成具体的UI库，如React-Toastify或其他
    console.log(`[Loading] ${message}`);
  }
  
  return loadingInstance;
};

/**
 * 关闭加载提示
 */
export const closeLoading = () => {
  loadingCount--;
  
  if (loadingCount <= 0) {
    loadingCount = 0;
    loadingInstance = null;
    
    if (typeof window !== 'undefined') {
      console.log('[Loading] 已关闭');
    }
  }
};

/**
 * 显示成功消息
 * @param message 提示消息
 */
export const showMessageSuccess = (message: string) => {
  showDialog({
    title: '成功',
    content: message,
    onConfirm: () => {},
  });
};

/**
 * 显示错误消息
 * @param message 提示消息
 */
export const showMessageError = (message: string) => {
  showDialog({
    title: '错误',
    content: message,
    onConfirm: () => {},
  });
};

/**
 * 显示警告消息
 * @param message 提示消息
 */
export const showMessageWarning = (message: string) => {
  if (typeof window !== 'undefined') {
    // 在实际项目中，这里可以集成具体的UI库
    console.warn(`[Warning] ${message}`);
    alert(`警告: ${message}`);
  }
};

/**
 * 显示信息消息
 * @param message 提示消息
 */
export const showMessageInfo = (message: string) => {
  if (typeof window !== 'undefined') {
    // 在实际项目中，这里可以集成具体的UI库
    console.info(`[Info] ${message}`);
    alert(`信息: ${message}`);
  }
};

/**
 * 显示确认对话框
 * @param message 提示消息
 * @param onConfirm 确认回调
 * @param onCancel 取消回调
 */
export const showConfirm = (
    message: string, 
    onConfirm: () => void, 
    options?: { onCancel?: () => void; confirmText?: string; title?: string }
) => {
  showDialog({
    title: options?.title || '确认',
    content: message,
    showCancel: true,
    onConfirm,
    onCancel: options?.onCancel,
    confirmText: options?.confirmText,
  });
}; 